<?php

namespace App\Models;


class Menu extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'menu';

    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'menu_id',
        'menu_name',
        'parent_id',
        'order_num',
        'path',
        'component',
        'query',
        'is_frame',
        'is_cache',
        'menu_type',
        'visible',
        'status',
        'perms',
        'icon',
        'back_path',
        'back_query',
        'create_time',
        'create_by',
        'update_by',
        'update_time',
        'remark',
    );

    /**
     * 执行模型是否自动维护时间戳。
     *
     * @var bool
     */
    public $timestamps = false;

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array();

    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }

    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        // $table  = "CREATE TABLE IF NOT EXISTS $tablename (
        //   `id` int(11) NOT NULL AUTO_INCREMENT,
        //   `menu_tag` varchar(255) NOT NULL COMMENT '菜单名称',
        //   `parent_id` int(11) DEFAULT '0' COMMENT '父级菜单',
        //   `grandfather` int(11) DEFAULT '0' COMMENT '爷爷级菜单',
        //   `order_no` int(10) DEFAULT '0' COMMENT '排序',
        //   `path` varchar(255) DEFAULT NULL COMMENT '页面路径',
        //   `icon` varchar(255) DEFAULT NULL COMMENT '图标',
        //   `type` int(3) DEFAULT '0' COMMENT '权限类型  0：菜单  1：动作  2：:报表菜单',
        //   `hasFlag` int(3) DEFAULT '1' COMMENT '是否显示 0：不显示  1：显示',
        //   `menu_action` enum('menu','action') DEFAULT 'menu' COMMENT '1:menu 2:action',
        //   `action_menuid` int(11) DEFAULT NULL COMMENT '动作属于哪个菜单',
        //   `action_tag` varchar(255) NOT NULL COMMENT '动作标志，用于权限判断',
        //   `window` varchar(30) DEFAULT '_self' COMMENT '窗口属性',
        //   PRIMARY KEY (`id`),
        //   KEY `parentId` (`parent_id`),
        //   KEY `order_no` (`order_no`),
        //   KEY `hasFlag` (`hasFlag`)
        // ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='菜单';
        // ";
        $table = "CREATE TABLE  IF NOT EXISTS $tablename  (
      `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
      `menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
      `parent_id` bigint(20) DEFAULT '0' COMMENT '父菜单ID',
      `order_num` int(4) DEFAULT '0' COMMENT '显示顺序',
      `path` varchar(200) DEFAULT '' COMMENT '路由地址',
      `component` varchar(255) DEFAULT NULL COMMENT '组件路径',
      `query` varchar(255) DEFAULT NULL COMMENT '路由参数',
      `is_frame` int(1) DEFAULT '1' COMMENT '是否为外链（0是 1否）',
      `is_cache` int(1) DEFAULT '0' COMMENT '是否缓存（0缓存 1不缓存）',
      `menu_type` char(1) DEFAULT '' COMMENT '菜单类型（M目录 C菜单 F按钮）',
      `visible` char(1) DEFAULT '0' COMMENT '菜单状态（0显示 1隐藏）',
      `status` char(1) DEFAULT '0' COMMENT '菜单状态（0正常 1停用）',
      `perms` varchar(100) DEFAULT NULL COMMENT '权限标识',
      `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',
      `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
      `create_time` datetime DEFAULT NULL COMMENT '创建时间',
      `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
      `update_time` datetime DEFAULT NULL COMMENT '更新时间',
      `remark` varchar(500) DEFAULT '' COMMENT '备注',
      PRIMARY KEY (`menu_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2000 DEFAULT CHARSET=utf8 COMMENT='菜单表';";
        return $table;
    }

    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        // $array = ['name' => "varchar(1000) DEFAULT NULL COMMENT 'token'"];
        // return $array;
    }
}
